import express from "express";
import cors from "cors";
import initializeDB from "./db/index.js";
import apiRouter from "./routes/index.js"; // 更新导入路径

async function startServer() {
  const app = express();
  const PORT = 3000; // 使用原json-server的端口3000

  try {
    // 初始化数据库
    const db = await initializeDB();

    // 中间件
    app.use(cors());
    app.use(express.json());

    // 根路由重定向
    app.get("/", (req, res) => {
      res.redirect("/pois");
    });

    // API路由
    app.use("/", apiRouter(db)); // 使用根路径保持兼容性

    // 404处理
    app.use((req, res) => {
      res.status(404).json({ error: "Endpoint not found" });
    });

    // 错误处理
    app.use((err, req, res, next) => {
      console.error(err.stack);
      res.status(500).json({ error: "Internal server error" });
    });

    // 启动服务
    app.listen(PORT, () => {
      console.log(`🚀 POI API server running on http://localhost:${PORT}`);
      console.log(`📊 Database: ${db.adapter.source}`);
      console.log(`🔍 Try: curl http://localhost:${PORT}/pois`);
    });
  } catch (error) {
    console.error("🔥 Failed to start server:", error);
    process.exit(1);
  }
}

// 启动服务器
startServer();
